Arduino প্রোগ্রামিং-এ switch-case স্টেটমেন্টটি ব্যবহার করে বিভিন্ন শর্তের উপর ভিত্তি করে নির্দিষ্ট ব্লক চালানো যায়। এটি if-else স্টেটমেন্টের বিকল্প হিসাবে ব্যবহৃত হয় এবং যখন অনেক শর্তের উপর ভিত্তি করে বিভিন্ন কাজ করা প্রয়োজন হয়, তখন কোডকে আরও সহজ ও পড়তে সুবিধাজনক করে তোলে।
switch-case স্টেটমেন্টের কাঠামো
switch-case স্টেটমেন্টের মূল কাঠামো নিচের মতো:
switch (expression) {
case constant1:
// code block 1
break;
case constant2:
// code block 2
break;
case constant3:
// code block 3
break;
default:
// default block (যদি কোনো case মিল না হয়)
break;
}expression: একটি ভেরিয়েবল বা এক্সপ্রেশন যাcaseব্লকগুলোর মানের সাথে মিলানো হয়।case constant: প্রতিটিcaseস্টেটমেন্টের একটি নির্দিষ্ট মান থাকে। যখনexpression-এর মান কোনোcase-এর সাথে মেলে, তখন সেই ব্লকটি চালানো হয়।break: প্রতিটিcaseব্লকের শেষে থাকে যাতে প্রোগ্রামswitchস্টেটমেন্ট থেকে বেরিয়ে আসে। এটি না দিলে পরবর্তীcaseব্লকও চলতে পারে।default: যখন কোনোcaseমেলে না, তখনdefaultব্লকটি চালানো হয়।
উদাহরণ ১: LED নিয়ন্ত্রণ
void setup() {
Serial.begin(9600);
}
void loop() {
int command = 2; // উদাহরণস্বরূপ একটি ভেরিয়েবল
switch (command) {
case 1:
Serial.println("Turn LED ON");
// LED চালু করার কোড
break;
case 2:
Serial.println("Turn LED OFF");
// LED বন্ধ করার কোড
break;
case 3:
Serial.println("Blink LED");
// LED ব্লিঙ্ক করার কোড
break;
default:
Serial.println("Invalid Command");
break;
}
delay(1000); // ১ সেকেন্ড অপেক্ষা
}ব্যাখ্যা: উপরের কোডে command ভেরিয়েবলের মান অনুযায়ী নির্দিষ্ট case চালানো হয়। যদি command এর মান ১ হয়, তাহলে "Turn LED ON" প্রিন্ট হয় এবং সংশ্লিষ্ট কোড চালানো হয়। break স্টেটমেন্টটি switch ব্লক থেকে বেরিয়ে আসতে সাহায্য করে।
উদাহরণ ২: দিন নির্ণয়
void setup() {
Serial.begin(9600);
}
void loop() {
int day = 3; // উদাহরণস্বরূপ একটি ভেরিয়েবল (১ = রবিবার, ৭ = শনিবার)
switch (day) {
case 1:
Serial.println("Sunday");
break;
case 2:
Serial.println("Monday");
break;
case 3:
Serial.println("Tuesday");
break;
case 4:
Serial.println("Wednesday");
break;
case 5:
Serial.println("Thursday");
break;
case 6:
Serial.println("Friday");
break;
case 7:
Serial.println("Saturday");
break;
default:
Serial.println("Invalid day");
break;
}
delay(1000); // ১ সেকেন্ড অপেক্ষা
}ব্যাখ্যা: এখানে day ভেরিয়েবলের মান অনুযায়ী দিনের নাম প্রিন্ট হয়। default স্টেটমেন্টটি তখন চালানো হয় যখন day ভেরিয়েবলের মান ১ থেকে ৭-এর মধ্যে না থাকে।
গুরুত্বপূর্ণ টিপস
breakস্টেটমেন্ট: প্রতিটিcaseব্লকের শেষেbreakরাখা গুরুত্বপূর্ণ। এটি না রাখলে পরবর্তীcaseব্লকগুলিও চালানো হতে পারে (এটিকে fall-through বলে)।defaultব্লক:defaultব্লক রাখা ঐচ্ছিক, তবে এটি রাখা ভালো যাতে কোনো case না মিললে একটি ডিফল্ট কাজ করা যায়।switch-caseস্টেটমেন্টের সীমাবদ্ধতা: শুধুমাত্র ইন্টিজার বাcharডেটা টাইপের জন্য কাজ করে। ফ্লোট বা স্ট্রিং ডেটা টাইপের জন্য এটি ব্যবহার করা যায় না।
switch-case স্টেটমেন্ট ব্যবহার করে প্রোগ্রামের লজিক আরও সুস্পষ্ট এবং পড়তে সহজ করা যায়, যা বড় প্রোগ্রামে কোড ম্যানেজমেন্টে সহায়ক।
Read more